iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 24
0
DevOps

用30天來介紹和使用 Docker系列 第 24

Day 24:使用 Docker-Compose 啟動多個 Docker Container

  • 分享至 

  • xImage
  •  

今天要介紹有關於 Docker-Compose 的部份,之前有介紹過使用 docker run 指令就可以把 Docker Container 啟動起來,但是如果我們要啟動很多個 Docker Container 時,就需要輸入很多次 docker run 指令,另外 container 和 container 之間要做關聯的話也要記得它們之間要如何的連結(link) Container,這樣在要啟動多個 Container 的情況下,就會顯得比較麻煩。

因此就出現了 Docker-Compose,只要寫一個 docker-compose.yml,把所有要使用 Docker Image 寫上去,另外也可以把 Container 之間的關係連結(link)起來,最後只要下 docker-compose up 指令,就可以把所有的 Docker Container 執行起來,這樣就可以很快速和方便的啟動多個 container。

實作的部份主要就是要把 Docker-Compose 安裝起來,然後撰寫一個 docker-compose.yml,並且使用 docker-compose up,指令把所有的 Docker Container 啟動起來,步驟如下:

1. 安裝 Docker-Compose,指令如下

# cd /usr/bin
# wget https://github.com/docker/compose/releases/download/1.18.0/docker-compose-Linux-x86_64
# mv docker-compose-Linux-x86_64 docker-compose
# chmod 755 docker-compose

2. 撰寫 docker-compose.yml 檔案如下

version: '2'
services:
  db:
     image: mysql
     environment:
        MYSQL_ROOT_PASSWORD: 123456
  admin:
     image: adminer
     ports:
       - 8080:8080

這個 docker-compose.yml 的檔案,是參考以下網站,改寫出來的
https://hub.docker.com/_/mysql/

主要的功能是要啟動 2 個 Docker Container,一個是 mysql 的 Container,另外一個是 admin 管理 mysql Web UI 的 container

MYSQL_ROOT_PASSWORD 的環境變數用來設定登入 mysql 的密碼

3. 啟動所有的 Docker Container 指令如下

$ docker-compose up -d

執行所有在 docker-compose.yml 檔案裡面設定的 Docker Image 啟動 Docker Container,另外 -d 參數代表要執行在背景的方式

4. 使用 Docker-Compose 提供的指令查看 Docker Container 的執行狀態

$ docker-compose ps

要輸入此指令之前,要先把資料夾切到和 docker-compose.yml 同一層的資料夾路徑下面,執行結果如下
https://ithelp.ithome.com.tw/upload/images/20171227/20103456PGcFzKD8zW.png

5. admin 執行的畫面如下
https://ithelp.ithome.com.tw/upload/images/20171227/20103456TxflRKpTN0.png

帳號輸入 root 和密碼輸入 123456,之後就可以登入 mysql 的管理畫面,畫面如下:
https://ithelp.ithome.com.tw/upload/images/20171227/20103456lWgPQa4fXY.png

6. 如果要看執行的 log 可以使用以下的指令

$ docker-compose logs

另外 logs 後面可以加上 Container Name
畫面如下
https://ithelp.ithome.com.tw/upload/images/20171227/201034564Ljx8jccEw.png

7. 如果要停止 docker-compose 執行的所有 Container 可以使用以下的指令

$ docker-compose stop

8. 如果要刪除 docker-compose 的所有 Container 可以使用以下的指令

$ docker-compose rm

畫面如下
https://ithelp.ithome.com.tw/upload/images/20171227/20103456GIP06bKAUX.png

今天介紹的 Docker-Compose 可以很方便的讓我們在執行啟動多個 Container,其實 docker-compose.yml,還有很多的寫法沒有介紹到,因此有興趣的話可以參考官方網站的說明,網址如下:
https://docs.docker.com/compose/compose-file/compose-file-v2/


上一篇
Day 23:使用 Docker Machine
下一篇
Day 25:介紹和操作 Docker Swarm
系列文
用30天來介紹和使用 Docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言